package com.pg.agent.engine.client.model.sop;


import com.pg.agent.engine.client.model.llm.ComponentLLM;
import com.pg.agent.engine.client.model.state.AIState;
import lombok.Data;

import java.io.Serializable;
import java.util.List;
import java.util.Map;

@Data
public class AISOP implements Serializable {
    private static final long serialVersionUID = 9120606095133429213L;
    /**
     * sopId
     */
    private Long id;
    /**
     * sop名称
     */
    private String name;

    /**
     * 运行模式；0对话模式，1：任务模式。
     */
    private Integer runMode;

    /**
     * 组件LLM
     */
    private ComponentLLM comLLM;

    /**
     * sop的每个步骤的数据
     */
    private Map<String, AIState> states;

    /**
     * sop的每个步骤的数据
     */
    private List<AIState> stateList;


    /**
     * 当前的state
     */
    private AIState currentState;

    /**
     * 结束状态名称
     */
    private String finishStateName;

    /**
     * 结束标志
     */
    private boolean finished = false;

    /**
     * 是否需要总结历史
     */
    private boolean summaryHistory;

    /**
     * 开始的查询提示词
     */
    private String beginQuery;


    /**
     * 描述
     */
    private String description;


    /**
     * 标签集合
     */
    private List<String> labelList;


    /**
     * 意图识别
     */
    private IntentRecognition intentRecognition;

    private int answerIndex;

    /**
     * 对话模式
     */
    public boolean isDialogueMode() {
        return runMode == null || runMode == 0;
    }

}
